package com.soft.javase.ch03.finals;

/**
 * @author wangzhisen
 * @Desc TODO
 * @date 2025/4/21
 *
 * final 最终的
 *  * 1.修饰类
 *  *  1.1 语法：final class
 *  *  1.2 含义：最终形态的类，不能再被继承
 *  *
 *  * 2.修饰方法
 *  *  2.1 语法：访问权限修饰符 final void 方法名(){ //方法体 }
 *  *  2.2 含义：最终形态的方法，不能再被重写
 *  *
 *  * 3.修饰变量  值不可再更改
 *  *   3.1  修饰基本数据类型 ， 值即二进制数据不可更改
 *  *   3.2  修饰引用数据类型 ， 值即指向的地址不可更改
 *  * 注意：
 *  * 编译期常量，声明这个常量时，必须赋初始值；
 *  * 运行期常量，声明构造方法时，必须给常量赋初始值；(而且是所有构造方法都要赋初始值)
 */
public /*final*/ class FinalDemo1 {

    private String name;
    final int a;

    public FinalDemo1() {
        a=20;
    }
    public FinalDemo1(String name) {
        this.name = name;
        a=30;
    }

    public void test(){
        //修饰基本数据类型 ， 值即二进制数据不可更改
        //a=50;
        System.out.println("Hello a="+a);
    }

    public void method(){
        //修饰引用数据类型 ， 值即指向的地址不可更改
        final FinalDemo1 f=new FinalDemo1();
        //f = new FinalDemo1();
    }
}
